package com.ttg.model.vo;

import cn.afterturn.easypoi.excel.annotation.Excel;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDateTime;
import java.time.LocalTime;

/**
 * @author zhangjie
 * @date 2021/3/16 13:54
 */
@Data
public class TagVo implements Serializable {
    private static final long serialVersionUID = -147079464723690804L;
    /**
     * 自增主键
     */
    @JsonProperty("id")
    private Long id;

    /**
     * 标签类型id
     */
    @JsonProperty("tagClassId")
    private Integer tagClassId;

    /**
     * 标签名称
     */
    @Excel(name = "标签名称")
    @JsonProperty("tagName")
    private String tagName;

    /**
     * 标签英文名称
     */
    @Excel(name = "标签英文名称")
    @JsonProperty("tagEnName")
    private String tagEnName;

    /**
     * 标签描述
     */
    @JsonProperty("tagDescription")
    private String tagDescription;

    /**
     * 标签颜色
     */
    @JsonProperty("tagColor")
    private String tagColor;

    /**
     * 是否移动端显示，0-否，1-是  默认选择“否”
     */
    @JsonProperty("tagMobileShow")
    private Integer tagMobileShow;

    /**
     * 标签类型 0-普通标签，1-等级标签
     */
    @JsonProperty("tagType")
    private Integer tagType;

    /**
     * 数据口径: user-用户，merch-商户
     */
    @JsonProperty("tagDataSource")
    private String tagDataSource;

    /**
     * 更新方式：auto-自动更新，hand-手动更新
     */
    @Excel(name = "更新方式")
    @JsonProperty("updateType")
    private String updateType;

    /**
     * 更新时间范围：示例：20251020-20251020,为null表示不限制
     */
    @JsonProperty("updateDateScope")
    private String updateDateScope;

    /**
     * 更新频率，daily-每天，weekly-每周，monthly-每月
     */
    @JsonProperty("updateFrequency")
    private String updateFrequency;

    /**
     * 更新日期
     */
    @JsonProperty("tagUpdateDates")
    private String tagUpdateDates;

    /**
     * 更新时间
     */
    @JsonProperty("tagUpdateTime")
    private LocalTime tagUpdateTime;

    /**
     * 标签人数
     */
    @Excel(name = "标签人数")
    @JsonProperty("tagPeopleNumber")
    private Integer tagPeopleNumber;

    /**
     * 创建类型 system-系统预定义，customize-自定义添加
     */
    @Excel(name = "创建方式")
    @JsonProperty("createType")
    private String createType;

    /**
     * 更新时间
     */
    @Excel(name = "更新时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonProperty("updateTime")
    private LocalDateTime updateTime;

    /**
     * 添加时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonProperty("addTime")
    private LocalDateTime addTime;

    /**
     * 添加人
     */
    @JsonProperty("addId")
    private Long addId;

    /**
     * 添加人名称
     */
    private String admUserName;

    /**
     * 标签状态 0正常 1弃用 4删除
     */
    @Excel(name = "标签状态",  replace = {"正常_0", "弃用_1", "删除_4"})
    @JsonProperty("tagStatus")
    private Integer tagStatus;
    /**
     * 最新版本状态 0-初始状态，1-计算成功，4-计算失败，9-计算中，2-计算取消，3-等待计算，5-延迟计算
     */
    @Excel(name = "最新版本状态",replace = {
            "初始状态_0",
            "计算成功_1",
            "计算失败_4",
            "计算中_9",
            "计算取消_2",
            "等待计算_3",
            "延迟计算_5"
    })
    @JsonProperty("versionStatus")
    private Integer versionStatus;

    /**
     * 标签占用情况 0：未占用，1：已占用
     */
    private String tagUsed;

}
